﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;

namespace QuanLyNhaHang
{
    public partial class QLNhaCungCap : Form
    {
        public QLNhaCungCap()
        {
            InitializeComponent();
        }

        private void QLNhaCungCap_Load(object sender, EventArgs e)
        {
            dataGridViewNCC.DataSource = BUSNhaCungCap.getAll();
            dataGridViewNCC.Columns["MaNCC"].HeaderText = "Mã nhà cung cấp";
            dataGridViewNCC.Columns["TenNCC"].HeaderText = "Tên nhà cung cấp";
            dataGridViewNCC.Columns["DiaChi"].HeaderText = "Địa chỉ";
            dataGridViewNCC.Columns["SoDienThoai"].HeaderText = "Số điện thoại";
        }

        private void buttonThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void buttonThem_Click(object sender, EventArgs e)
        {
            add();
        }

        private void add()
        {
            var ncc = new DTONhaCungCap()
            {
                TenNCC = textBoxTenNCC.Text.Trim(),
                DiaChi = textBoxDiaChi.Text.Trim(),
                SoDienThoai = textBoxSoDienThoai.Text.Trim()
            };
            if (check(ncc))
            {
                textBoxTenNCC.ResetText();
                textBoxSoDienThoai.ResetText();
                textBoxDiaChi.ResetText();
                if (BUSNhaCungCap.add(ncc) > 0)
                {
                    MessageBox.Show("Thêm mới thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    reloadDatagrid();
                }
                else
                {
                    MessageBox.Show("Thêm mới thất bại", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private bool check(DTONhaCungCap ncc)
        {
            StringBuilder str = new StringBuilder();

            if(string.IsNullOrEmpty(ncc.TenNCC))
            {
                str.AppendLine("Tên nhà cung cấp không được bỏ trống.");
            }

            if (string.IsNullOrEmpty(ncc.DiaChi))
            {
                str.AppendLine("Địa chỉ không được bỏ trống.");
            }

            if (string.IsNullOrEmpty(ncc.SoDienThoai))
            {
                str.AppendLine("Số điện thoại không được bỏ trống.");
            }

            if (str.Length > 0)
            {
                MessageBox.Show(str.ToString(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            return true;
        }

        private void textBoxTenNCC_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter) add();
        }

        private void textBoxDiaChi_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter) add();
        }

        private void textBoxSoDienThoai_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter) add();
        }

        private void buttonXoa_Click(object sender, EventArgs e)
        {
            if (dataGridViewNCC.SelectedRows.Count > 0)
            {
                BUSNhaCungCap.del(new DTONhaCungCap() {
                    MaNCC=Convert.ToInt32(dataGridViewNCC.CurrentRow.Cells[0].Value)
                });
                reloadDatagrid();
            }
        }

        private void reloadDatagrid()
        {
            dataGridViewNCC.DataSource = BUSNhaCungCap.getAll();
        }

        private void buttonSua_Click(object sender, EventArgs e)
        {
            var ncc = new DTONhaCungCap()
            {
                MaNCC=Convert.ToInt32(dataGridViewNCC.CurrentRow.Cells[0].Value),
                TenNCC = textBoxTenNCC.Text.Trim(),
                DiaChi = textBoxDiaChi.Text.Trim(),
                SoDienThoai = textBoxSoDienThoai.Text.Trim()
            };
            if (check(ncc))
            {
                textBoxTenNCC.ResetText();
                textBoxSoDienThoai.ResetText();
                textBoxDiaChi.ResetText();
                if (BUSNhaCungCap.edit(ncc) > 0)
                {
                    MessageBox.Show("Sửa dữ liệu thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    reloadDatagrid();
                }
                else
                {
                    MessageBox.Show("Sửa dữ liệu thất bại", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            buttonSua.Enabled = false;
        }

        private void dataGridViewNCC_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            buttonSua.Enabled = true;
            textBoxTenNCC.Text = (string)dataGridViewNCC.CurrentRow.Cells[1].Value;
            textBoxDiaChi.Text = (string)dataGridViewNCC.CurrentRow.Cells[2].Value;
            textBoxSoDienThoai.Text = (string)dataGridViewNCC.CurrentRow.Cells[3].Value;
        }
    }
}
